package com.atguigu.gulimall.product.entity;
import com.atguigu.common.valid.AddGroup;
import com.atguigu.common.valid.ListValue;
import com.atguigu.common.valid.UpdateGroup;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import org.hibernate.validator.constraints.URL;
import javax.validation.constraints.*;

/**
 * 品牌
 * 
 * @author zhuzhu
 * @email 838759460@qq.com
 * @date 2024-04-28 23:03:03
 */
@Data
@TableName("pms_brand")
public class BrandEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 品牌id
	 */
	//AddGroup.class是个空接口 表示这个注解属于addgrop组，本质上表示在添加的时候id不能被指定
	@Null(message = "新增不能指定id",groups ={AddGroup.class} )
	//表示这个注解属于updategroup组，本质上表示修改操作时该字段必须指定值
	@NotNull(message = "修改必须指定id",groups = {UpdateGroup.class})
	@TableId
	private Long brandId;
	/**
	 * 品牌名 @NotBlank表示这个注解修饰的字段不能为空，且不能是空字符串
	 */
	//表明该注解属于两个组，本质表示该字段不能为空，不管是在修改操作还是更新操作的时候
	@NotBlank(message = "品牌名不能为空",groups = {AddGroup.class, UpdateGroup.class})
	private String name;
	/**
	 * 品牌logo地址
	 */
	//下面这一个注解表示，只有在新增的时候才生效，言外之意就是修改不生效，可以为空
	@NotBlank(message = "url不能为空",groups = {AddGroup.class})
	@URL(message = "品牌logo地址必须是url",groups = {AddGroup.class, UpdateGroup.class})
	private String logo;
	/**
	 * 介绍
	 */
	private String descript;
	/**
	 * 显示状态[1-不显示；0-显示]
	 */
    @NotNull(message = "状态不能为空",groups = {AddGroup.class, UpdateGroup.class})
	@ListValue(vals = {1,0},message = "传参错误status值只能是0或1",groups ={AddGroup.class, UpdateGroup.class} )
	private Integer showStatus;
	/**
	 * 检索首字母
	 */
	//regexp = "/^[a-zA-Z]$/"以a到z开头，并且他们结束，言外之意就是一个字母
	//@NotBlank(message = "首字母不能为空",groups = {AddGroup.class})
	@Pattern(regexp = "^[a-zA-Z]$",groups = {AddGroup.class, UpdateGroup.class})
	private String firstLetter;
	/**
	 * 排序
	 */
	//表示该字段的最小整数就是0
	//@NotNull(message = "排序字段不能为空",groups = {AddGroup.class})
	@Min(value = 0,message = "排序字段不能比0小",groups = {AddGroup.class, UpdateGroup.class})
	private Integer sort;
}
